package Controller;

import Model.Caja; 
import Model.Congreso; 
import Model.Gasto;
import Model.Pedido;
import Model.Reposicion;
import Servicio.Proxy; 
//import View.GastosForm; 
import java.util.ArrayList;
import javax.swing.JFrame;
import javax.swing.JOptionPane;

public class StockController {

    private ArrayList<Congreso> mCongresos;
     
    //private GastosForm mGastosForm;
    private Congreso congreso;
    private Congreso congreso2;
    private Caja caja;

    public StockController () {
    }
    public Congreso getCongreso(){
        return congreso;
    }
    
    public void setValStock(Congreso congreso, Congreso congreso2){
        Proxy.modificarCongreso(congreso);
        Proxy.modificarCongreso(congreso2);
        
    }
    public void setMalos(Congreso congreso){
        Proxy.modificarCongreso(congreso);
        
    }    
    public void setCongreso(Congreso val){
        this.congreso = val;
    }
    
     public boolean almacenarReposicion(Reposicion rep) {
             return Proxy.almacenarReposicion(rep);
    }
    
    public Congreso getCongreso2(){
        return congreso2;
    }
    
        
    public void setCongreso2(Congreso val){
        this.congreso2 = val;
    }
    
    public ArrayList<Congreso> getCongresos () {
        return mCongresos;
    }
    
   public void setCongresos (ArrayList<Congreso> val) {
        this.mCongresos = val;
    }
   
   public  void cargarCongresos(){
        this.setCongresos(Proxy.obtenerCongresos());
        
    }
    //*cargo un congreso en base a las iniciales y la fecha*/
    public Congreso cargarCongreso (String iniciales, String fechaInicio ) {
       
        return Proxy.obtenerCongreso(iniciales, fechaInicio);
        }
  
    public Caja cargarCaja () {
        return null;
    }
  
    public void actualizarSaldoIni (Congreso cong) {
        Proxy.modificarSaldoIni(cong);
        
    }
    public boolean esNumero (String saldo,int ab)
    {
    int valor;
        try{
            
            valor = Integer.parseInt(saldo);
            if (valor < 0){
                JOptionPane.showMessageDialog(new JFrame(), "Debe ingresar un valor válido.", "Atención!", JOptionPane.WARNING_MESSAGE);
                return false;
            }
            if(ab!=0){
                if ((valor > congreso2.getStockDvd() && ab>0) || (valor > congreso.getStockDvd() && ab<0)){
                    JOptionPane.showMessageDialog(new JFrame(), "Debe ingresar un valor menor al Stock en Oficina.", "Atención!", JOptionPane.WARNING_MESSAGE);
                    return false;
                }
            }
        }catch (Exception e) 
        {
            JOptionPane.showMessageDialog(new JFrame(), "Debe ingresar un número válido ", "Atención!", JOptionPane.WARNING_MESSAGE);
            return false;
        }
        return true;
    }
 
   // public GastosForm getGastosForm () {
   //     return mGastosForm;
  //  }

   
   // public void setGastosForm (GastosForm val) {
   //     this.mGastosForm = val;
   // }

    /*public void agregarGasto (Congreso con,Gasto gas) {
        Proxy.modificarGasto(con, gas);
    }*/
    public ArrayList<Pedido> actualizarCaja(Congreso con){
       
       return    Proxy.obtenerPedidosCaja(con);
    }

public ArrayList<Gasto>actualizarGastos(Congreso con){
       
      return Proxy.obtenerCaja(con).getGasto();
    }
public Caja actualizarItemsCajas( Congreso con){
       
       return Proxy.obtenerCaja(con);
           
}

//* verifica si el valor de saldo inicial es de tipo numérico*/
public boolean esSaldo(String saldo)
    {
        try{
            Double.parseDouble(saldo);
        }catch (Exception e) 
        {
            JOptionPane.showMessageDialog(new JFrame(), "Debe ingresar un saldo válido ", "Atención!", JOptionPane.WARNING_MESSAGE);
            return false;
        }
        return true;
    }

}

